#define _CRT_SECURE_NO_WARNINGS


#include <iostream>
using namespace std;

int main() {
    int a_sub_b;
    int b_sub_c;
    int a_add_b;
    int b_add_c;
    cin >> a_sub_b >> b_sub_c >> a_add_b >> b_add_c;
    int a, b, c;
    int flag = 0;
    for (a = 0; a <= 30; a++)
    {
        for (b = 0; b <= 30; b++)
        {
            for (c = 0; c <= 30; c++)
            {
                if ((a - b == a_sub_b) && (b - c == b_sub_c) && (a + b == a_add_b) && (b + c == b_add_c))
                {
                    flag = 1;
                    cout << a << " " << b << " " << c;
                }
                if (flag == 1)
                {
                    break;
                }
            }
            if (flag == 1)
            {
                break;
            }
        }
        if (flag == 1)
        {
            break;
        }
    }
    if (flag == 0)
    {
        printf("No");
    }
    return 0;
}


#include<iostream>
#include<string>
using namespace std;
int main() {
    string str;
    while (getline(cin, str)) {
        int a = 0, b = 0, c = 0, d = 0;
        for (const auto item : str) {
            if (isalpha(item))
                ++a;
            else if (isspace(item))
                ++b;
            else if (isdigit(item))
                ++c;
            else if (ispunct(item))
                ++d;
        }
        cout << a << endl << b << endl << c << endl << d << endl;
    }
    return 0;
}